关于new Array().fill()的用法

  1. 当我们想借助new Array()生成指定数组长度的假数据的时候,我们可以这样写:
const data = new Array(5).map((v, i) => {
        return { name: "XXX" + i, price: i, category: Math.random() > 0.5 ? '蔬菜' : '水果' }
    })
console.log(data) // (5) [empty × 5]
  1. 打印后我们发现,数组还是空的。原因在于虽然定义了数组长度为5的数组,但是我们没有往里面添加数据,所以一个长度为5的空数组调用map方法返回的依旧为空数组。

    解决办法:使用fill()这个数组方法,由于没有传值,fill()会自动根据数组长度替换数组中所有的值为undefined,这样起码数组有值了!!!

const data = new Array(5).fill()
console.log(data) // (5) [undefined, undefined, undefined, undefined, undefined]
  1. 以下便是关于new Array().fill的用法了
const data = new Array(5).fill().map((v, i) => {
        return { name: "XXX" + i, price: i, category: Math.random() > 0.5 ? '蔬菜' : '水果' }
    })
console.log(data)
// (5) [{…}, {…}, {…}, {…}, {…}]
//0: {name: "XXX0", price: 0, category: "蔬菜"}
//1: {name: "XXX1", price: 1, category: "蔬菜"}
//2: {name: "XXX2", price: 2, category: "蔬菜"}
//3: {name: "XXX3", price: 3, category: "水果"}
//4: {name: "XXX4", price: 4, category: "水果"}
//length: 5
//__proto__: Array(0)
  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值